package cn.zyq.ykb.service.user;

import cn.zyq.ykb.beans.user.User;
import cn.zyq.ykb.beans.user.UserBalance;
import cn.zyq.ykb.beans.user.vo.UserWalletDetailVo;
import cn.zyq.ykb.system.common.PageParam;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * 用户-余额变更Service接口
 *
 * @author SystemAuth
 * @date 2023-05-19
 */
public interface UserBalanceService {
    /**
     * 查询用户-余额变更
     *
     * @param userBalanceID 用户-余额变更主键
     * @return 用户-余额变更
     */
    UserBalance selectUserbalanceByUserBalanceID(Integer userBalanceID);

    /**
     * 查询用户-余额变更
     *
     * @param serviceID 用户-余额变更业务ID
     * @return 用户-余额变更
     */
    UserBalance selectUserbalanceByServiceID(String serviceID);

    /**
     * 查询用户-余额变更列表
     *
     * @param pageParam
     * @return 用户-余额变更集合
     */
    PageInfo<UserWalletDetailVo> selectUserbalanceList(PageParam pageParam, User loginUser);

    /**
     * 查询用户-余额变更列表
     *
     * @param param
     * @return 用户-余额变更集合
     */
    List<UserBalance> selectUserbalanceList(UserBalance param);

    /**
     * 新增用户-余额变更
     *
     * @param param 用户-余额变更
     * @return 结果
     */
    int insertUserbalance(UserBalance param);

    /**
     * 修改用户-余额变更
     *
     * @param param 用户-余额变更
     * @return 结果
     */
    int updateUserbalance(UserBalance param);

    /**
     * 批量删除用户-余额变更
     *
     * @param userBalanceIDs 需要删除的用户-余额变更主键集合
     * @return 结果
     */
    int deleteUserbalanceByUserBalanceIDs(Integer[] userBalanceIDs);

    /**
     * 删除用户-余额变更信息
     *
     * @param userBalanceID 用户-余额变更主键
     * @return 结果
     */
    int deleteUserbalanceByUserBalanceID(Integer userBalanceID);

    /**
     * 提现记录
     * @param pageParam
     * @param loginUser
     * @return
     */
    PageInfo<UserBalance> txList(PageParam pageParam, User loginUser);

    /**
     *
     * @param loginUser
     * @return
     */
    Integer txListNum(User loginUser);
}
